﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int cmp(int* a, int* b) {
    return *a - *b;
}
int singleNumber(int* nums, int numsSize) {
    if (numsSize == 1)
        return nums[0];
    qsort(nums, numsSize, sizeof(nums[0]), cmp);
    int d[numsSize];
    d[0] = nums[0];
    int dp = 0;
    for (int i = 1; i < numsSize; i++) {
        if (dp == -1 || nums[i] != d[dp]) {
            d[++dp] = nums[i];
        }
        else
            dp--;
    }
    return d[dp];
}
//
//给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
//
//请注意 ，必须在不复制数组的情况下原地对数组进行操作。



void moveZeroes(int* nums, int numsSize) {
    int i, j = 0, t;
    for (i = 0; i < numsSize; i++) {
        if (nums[i] != 0) {
            t = nums[j];
            nums[j] = nums[i];
            nums[i] = t;
            j++;
        }
    }
}